26c.他のアプリケーションとの連携
Office97ではオ−トメ−ション機能をサポ−トしており、Excel97・Access97 ・Word97ではアプリケ−ションを連携して1つのアプリケ−ションのように 使用することが出来る。
26c−1 ExcelオブジェクトをWordへ貼り付け<


Sub ki407()
 Set wd = CreateObject("word.Application") '[1]
 wd.Visible = True                          '[2]
 wd.documents.Add                           '[3]
 
 For Each ex In ActiveSheet.Shapes          '[4]
 
    ccc = ex.Name                           '[5]
    ActiveSheet.Shapes(ccc).Select          '[6]
    Selection.Copy                          '[7]
    Range("G1").Select
 
    wd.Selection.Paste                      '[8]
Next 
End Sub
[1] オブジェクト変数"wd"にWordのApplicationオブジェクトをセット
[2] Wordを表示する(上記でWordは起動されるが非表示)
[3] 新規文書の作成
[4] Excelのアクティブシ−トに図形があれば変数"ex"へ入れる
[5] 図形の名前を取得
[6] 名前を取得した図形を選択
[7] 選択した図形をコピ−
[8] Wordへ図形を貼り付ける

26c−2 選択したセルをBMP画像で保存
・Shell関数アプリケ−ションを起動した場合、アプリケ−ションの起動と関係なく 次ぎのステ−トメントへ移る。、ペイントアプリケ−ションのような時間の掛かる 場合は起動確認後次ぎを実行する必要がある。(本例はダミ−のファイルを 保存し保存を確認後次のステップを実行した)

・ワ−クシ−トの一部を画像コピ−してHPの説明用に掲載する場合、 そのつどペイントへ貼り付けファイルを作成しているが面倒なので、 一連の作業をマクロで作ったのが本例です。

・ピクチャ−で保存したいセルをアクティブにして本マクロ実行で指定した個所が、 指定したフォルダ(本例:b:\test2)に保存される。


Const fil1 As String = "A:\Program Files\MSPAINT.EXE"
Const fil2 As String = "c:\test2"
Dim filn As String   'BMPのファイル名
Dim n As Integer     'BMPのファイル名no
        
Sub 例26c2()
'BMPのファイル名
      n = n + 1
      filn = "画像" & Str(n)
'画像コピ−
  Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
  Application.WindowState = xlMinimized
'Notepadの起動と保存画面表示
     ChDir fil2
     On Error Resume Next
     AppActivate "ペイント"
     If Err Then
       Shell fil1 + " ", windowstyle:=1
     End If
     On Error GoTo 0
'過去のファイル削除
      If Dir(fil2 & "\" & filn & ".bmp") = filn & ".bmp" Then
           Kill fil2 & "\" & filn & ".bmp"
      End If
      If Dir(fil2 & "\無題.bmp") = "無題.bmp" Then
           Kill fil2 & "\無題.bmp"
      End If
      tim = Now + TimeValue("00:00:08")
Do
'保存
    SendKeys "%(FA)", True           '名前を付け保存
    SendKeys "%(S)", True            '保存

    If Dir(fil2 & "\無題.bmp") = "無題.bmp" Then
           Kill fil2 & "\無題.bmp"
           Exit Do
    End If
    If Now > tim Then
       MsgBox "変換に失敗しました。ペイントのパスを確認して下さい"
       Exit Sub
    End If
Loop

'貼付け
      SendKeys "%(EP)", True
'保存
    SendKeys "%(EO)", True          'ファイルへコピ−
    SendKeys filn, True
    SendKeys "%(S)", True            'OK
    

    Application.CutCopyMode = False
'終了
    SendKeys "%(FX)", True           'ペイント終了
    SendKeys "(N)", True
    Application.WindowState = xlNormal
End Sub
・ペイントの、ファイル名は各PCに合わせ書き変えること(本例A:\WINDOWS\PBRUSH.EXE)。
・自動作成したBMPファイルは指定した(本例:"B:\test2")フォルダ−へ 書き込むので、そのフォルダ−を事前に作成すると共にマクロも書き変えること。
・上記指定が合っていない場合はアプリケ−ション”ペイント”の起動待ちで永久ル−プになる為、 8秒で起動確認が出来ない場合はメッセ−ジ後マクロ実行を終了します。
・BMPファイルは本例では"画像"としてあるが、英字の場合はキ−ボ−ドの 大文字or小文字の設定によりファイル名が変わのでうまく動作しないことがあります。
・本ケ−スは選択したセルを対象にしているが、グラフ等のオブジェクトを対象に実行 したい方は、「Selection.CopyPicture....」の一行を「Selection.Copy」に変更すればよい。
・注意:ペイントの貼り付ける場所は大きなサイズにしてから実行して下さい。

目次へ戻る

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル